<!DOCTYPE html>
            
<HTML>
<HEAD>
<meta name="booktitle" content="Developing Applications With Objective Caml" ><TITLE>Developing applications with Objective Caml</TITLE>
 <meta charset="ISO-8859-1"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<META name="GENERATOR" content="hevea 1.05-7 of 2000-02-24">
<META NAME="Author" CONTENT="Christian.Queinnec@lip6.fr">
<LINK rel=stylesheet type="text/css" href="videoc-ocda.css">
<script language="JavaScript" src="videoc.js"><!--
//--></script>
</HEAD>
<BODY class="regularBody">
<!--HEVEA command line is: /home/pauillac/cristal4/xleroy/estephe/translation/Livre/Bin/hevea -v -I /home/pauillac/cristal4/xleroy/estephe/translation/Livre/Styles/inputs book.hva toto.hva -o book-ora.html book-ora.tex -->
<!--HACHA command line is: /home/pauillac/cristal4/xleroy/estephe/translation/Livre/Bin/hacha book-ora.html -->

<DIV ALIGN=center>
<FONT SIZE=7>Developing Applications With</FONT><FONT SIZE=7><BR></FONT>

<IMG SRC="logocaml.gif">
<BR>
<BR>
<FONT SIZE=5>Emmanuel CHAILLOUX - Pascal MANOURY - Bruno PAGANO</FONT><FONT SIZE=5><BR></FONT></DIV>
<BR>
<BR>

<!-- BEGIN Search form (added by Vincent Simonet for caml.inria.fr/) -->
<center>
  <form method="GET" action="http://caml.inria.fr/cgi-bin/search.cgi">
    <input type="text" name="words" size="31" value="">
    <input type="submit" value="Search">
    <input type="hidden" name="corpus" value="oreilly-book">
  </form>
</center>
<!-- END Search form -->


<BR>

<H1>Preface</H1>
<UL>
<LI><A HREF="book-ora001.html"> Preface</A>
</UL>

<H1>Introduction</H1>
<UL>
<LI><A HREF="book-ora002.html"> Objectives</A>
<LI><A HREF="book-ora003.html"> Description of the language</A>
<UL>
<LI><A HREF="book-ora003.html#toc1"> Structure of a program</A>
<LI><A HREF="book-ora003.html#toc2"> Safety and efficiency of execution</A>
</UL>
<LI><A HREF="book-ora004.html"> Outline of the book</A>
</UL>

<H1>Chapter&nbsp;1&nbsp;&nbsp; How to obtain Objective CAML</H1>
<A NAME="chap-getocaml"></A>
<UL>
<LI><A HREF="book-ora006.html"> Free software</A>
<LI><A HREF="book-ora007.html"> Description of the CD-ROM</A>
<LI><A HREF="book-ora008.html"> Downloading</A>
<LI><A HREF="book-ora009.html"> Installation</A>
<UL>
<LI><A HREF="book-ora009.html#toc3"> Installation under Windows</A>
<LI><A HREF="book-ora009.html#toc4"> Installation under Linux</A>
<LI><A HREF="book-ora009.html#toc5"> Installation under MacOS</A>
<LI><A HREF="book-ora009.html#toc6"> Installation from source under Unix</A>
<LI><A HREF="book-ora009.html#toc7"> Installation of the HTML documentation</A>
</UL>
<LI><A HREF="book-ora010.html"> Testing the installation</A>
</UL>

<H1 ALIGN=center>Part&nbsp;I<BR> Language Core<BR><IMG SRC="logocaml-petit.gif"> 
</H1><BR>
<BR>
<UL>
<LI><A HREF="book-ora012.html"> Presenting part I</A>
</UL>

<H1>Chapter&nbsp;2&nbsp;&nbsp; Functional programming</H1>
<A NAME="chap-PF"></A><UL>
<LI><A HREF="book-ora013.html"> Introduction</A>
<LI><A HREF="book-ora014.html"> Chapter outline</A>
<LI><A HREF="book-ora015.html"> Functional core of Objective CAML</A>
<UL>
<LI><A HREF="book-ora015.html#toc8"> Primitive values, functions, and types</A>
<LI><A HREF="book-ora015.html#toc9"> Conditional control structure</A>
<LI><A HREF="book-ora015.html#toc10"> Value declarations</A>
<LI><A HREF="book-ora015.html#toc11"> Function expressions, functions</A>
<LI><A HREF="book-ora015.html#toc12"> Polymorphism and type constraints</A>
<LI><A HREF="book-ora015.html#toc13"> Examples</A>
</UL>
<LI><A HREF="book-ora016.html"> Type declarations and pattern matching</A>
<UL>
<LI><A HREF="book-ora016.html#toc14"> Pattern matching</A>
<LI><A HREF="book-ora016.html#toc15"> Type declaration</A>
<LI><A HREF="book-ora016.html#toc16"> Records</A>
<LI><A HREF="book-ora016.html#toc17"> Sum types</A>
<LI><A HREF="book-ora016.html#toc18"> Recursive types</A>
<LI><A HREF="book-ora016.html#toc19"> Parametrized types</A>
<LI><A HREF="book-ora016.html#toc20"> Scope of declarations</A>
<LI><A HREF="book-ora016.html#toc21"> Function types</A>
<LI><A HREF="book-ora016.html#toc22"> Example: representing trees</A>
<LI><A HREF="book-ora016.html#toc23"> Recursive values which are not functions</A>
</UL>
<LI><A HREF="book-ora017.html"> Typing, domain of definition, and exceptions</A>
<UL>
<LI><A HREF="book-ora017.html#toc24"> Partial functions and exceptions</A>
<LI><A HREF="book-ora017.html#toc25"> Definition of an exception</A>
<LI><A HREF="book-ora017.html#toc26"> Raising an exception</A>
<LI><A HREF="book-ora017.html#toc27"> Exception handling</A>
</UL>
<LI><A HREF="book-ora018.html"> Polymorphism and return values of functions</A>
<LI><A HREF="book-ora019.html"> Desktop Calculator</A>
<LI><A HREF="book-ora020.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora020.html#toc28"> Merging two lists</A>
<LI><A HREF="book-ora020.html#toc29"> Lexical trees</A>
<LI><A HREF="book-ora020.html#toc30"> Graph traversal</A>
</UL>
<LI><A HREF="book-ora021.html"> Summary</A>
<LI><A HREF="book-ora022.html"> To learn more</A>
</UL>

<H1>Chapter&nbsp;3&nbsp;&nbsp; Imperative Programming</H1>
<A NAME="chap-PI"></A><UL>
<LI><A HREF="book-ora024.html"> Introduction</A>
<LI><A HREF="book-ora025.html"> Plan of the Chapter</A>
<LI><A HREF="book-ora026.html"> Modifiable Data Structures</A>
<UL>
<LI><A HREF="book-ora026.html#toc31"> Vectors</A>
<LI><A HREF="book-ora026.html#toc32"> Character Strings</A>
<LI><A HREF="book-ora026.html#toc33"> Mutable Fields of Records</A>
<LI><A HREF="book-ora026.html#toc34"> References</A>
<LI><A HREF="book-ora026.html#toc35"> Polymorphism and Modifiable Values</A>
</UL>
<LI><A HREF="book-ora027.html"> Input-Output</A>
<UL>
<LI><A HREF="book-ora027.html#toc36"> Channels</A>
<LI><A HREF="book-ora027.html#toc37"> Reading and Writing</A>
<LI><A HREF="book-ora027.html#toc38"> Example: Higher/Lower</A>
</UL>
<LI><A HREF="book-ora028.html"> Control Structures</A>
<UL>
<LI><A HREF="book-ora028.html#toc39"> Sequence</A>
<LI><A HREF="book-ora028.html#toc40"> Loops</A>
<LI><A HREF="book-ora028.html#toc41"> Example: Implementing a Stack</A>
<LI><A HREF="book-ora028.html#toc42"> Example: Calculations on Matrices</A>
</UL>
<LI><A HREF="book-ora029.html"> Order of Evaluation of Arguments</A>
<LI><A HREF="book-ora030.html"> Calculator With Memory</A>
<LI><A HREF="book-ora031.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora031.html#toc43"> Doubly Linked Lists</A>
<LI><A HREF="book-ora031.html#toc44"> Solving linear systems</A>
</UL>
<LI><A HREF="book-ora032.html"> Summary</A>
<LI><A HREF="book-ora033.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;4&nbsp;&nbsp; Functional and Imperative Styles</H1>
<A NAME="chap-C-Styles"></A><UL>
<LI><A HREF="book-ora035.html"> Introduction</A>
<LI><A HREF="book-ora036.html"> Plan of the Chapter</A>
<LI><A HREF="book-ora037.html"> Comparison between Functional and Imperative</A>
<UL>
<LI><A HREF="book-ora037.html#toc45"> The Functional Side</A>
<LI><A HREF="book-ora037.html#toc46"> The Imperative Side</A>
<LI><A HREF="book-ora037.html#toc47"> Recursive or Iterative</A>
</UL>
<LI><A HREF="book-ora038.html"> Which Style to Choose?</A>
<UL>
<LI><A HREF="book-ora038.html#toc48"> Sequence or Composition of Functions</A>
<LI><A HREF="book-ora038.html#toc49"> Shared or Copy Values</A>
<LI><A HREF="book-ora038.html#toc50"> How to Choose your Style</A>
</UL>
<LI><A HREF="book-ora039.html"> Mixing Styles</A>
<UL>
<LI><A HREF="book-ora039.html#toc51"> Closures and Side Effects</A>
<LI><A HREF="book-ora039.html#toc52"> Physical Modifications and Exceptions</A>
<LI><A HREF="book-ora039.html#toc53"> Modifiable Functional Data Structures</A>
<LI><A HREF="book-ora039.html#toc54"> Lazy Modifiable Data Structures</A>
</UL>
<LI><A HREF="book-ora040.html"> Streams of Data</A>
<UL>
<LI><A HREF="book-ora040.html#toc55"> Construction</A>
<LI><A HREF="book-ora040.html#toc56"> Destruction and Matching of Streams</A>
</UL>
<LI><A HREF="book-ora041.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora041.html#toc57"> Binary Trees</A>
<LI><A HREF="book-ora041.html#toc58"> Spelling Corrector</A>
<LI><A HREF="book-ora041.html#toc59"> Set of Prime Numbers</A>
</UL>
<LI><A HREF="book-ora042.html"> Summary</A>
<LI><A HREF="book-ora043.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;5&nbsp;&nbsp; The Graphics Interface</H1>
<A NAME="chap-PG"></A>
<A NAME="@fonctions145"></A><UL>
<LI><A HREF="book-ora044.html"> Introduction</A>
<LI><A HREF="book-ora045.html"> Chapter overview</A>
<LI><A HREF="book-ora046.html"> Using the <TT>Graphics</TT> Module</A>
<LI><A HREF="book-ora047.html"> Basic notions</A>
<LI><A HREF="book-ora048.html"> Graphical display</A>
<UL>
<LI><A HREF="book-ora048.html#toc60"> Reference point and graphical context</A>
<LI><A HREF="book-ora048.html#toc61"> Colors</A>
<LI><A HREF="book-ora048.html#toc62"> Drawing and filling</A>
<LI><A HREF="book-ora048.html#toc63"> Text</A>
<LI><A HREF="book-ora048.html#toc64"> Bitmaps</A>
<LI><A HREF="book-ora048.html#toc65"> Example: drawing of boxes with relief patterns</A>
</UL>
<LI><A HREF="book-ora049.html"> Animation</A>
<LI><A HREF="book-ora050.html"> Events</A>
<UL>
<LI><A HREF="book-ora050.html#toc66"> Types and functions for events</A>
<LI><A HREF="book-ora050.html#toc67"> Program skeleton</A>
<LI><A HREF="book-ora050.html#toc68"> Example: telecran</A>
</UL>
<LI><A HREF="book-ora051.html"> A Graphical Calculator</A>
<LI><A HREF="book-ora052.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora052.html#toc69"> Polar coordinates</A>
<LI><A HREF="book-ora052.html#toc70"> Bitmap editor</A>
<LI><A HREF="book-ora052.html#toc71"> Earth worm</A>
</UL>
<LI><A HREF="book-ora053.html"> Summary</A>
<LI><A HREF="book-ora054.html"> To learn more</A>
</UL>

<H1>Chapter&nbsp;6&nbsp;&nbsp; Applications</H1>
<A NAME="chap-PART1-Applications"></A>
<UL>
<LI><A HREF="book-ora056.html"> Introduction</A>
<LI><A HREF="book-ora057.html"> Database queries</A>
<UL>
<LI><A HREF="book-ora057.html#toc72"> Data format</A>
<LI><A HREF="book-ora057.html#toc73"> Reading a database from a file</A>
<LI><A HREF="book-ora057.html#toc74"> General principles for database processing</A>
<LI><A HREF="book-ora057.html#toc75"> Selection criteria</A>
<LI><A HREF="book-ora057.html#toc76"> Processing and computation</A>
<LI><A HREF="book-ora057.html#toc77"> An example</A>
<LI><A HREF="book-ora057.html#toc78"> Further work</A>
</UL>
<LI><A HREF="book-ora058.html"> BASIC interpreter</A>
<UL>
<LI><A HREF="book-ora058.html#toc79"> Abstract syntax</A>
<LI><A HREF="book-ora058.html#toc80"> Program pretty printing</A>
<LI><A HREF="book-ora058.html#toc81"> Lexing</A>
<LI><A HREF="book-ora058.html#toc82"> Parsing</A>
<LI><A HREF="book-ora058.html#toc83"> Evaluation</A>
<LI><A HREF="book-ora058.html#toc84"> Finishing touches</A>
<LI><A HREF="book-ora058.html#toc85"> Further work</A>
</UL>
<LI><A HREF="book-ora059.html"> Minesweeper</A>
<UL>
<LI><A HREF="book-ora059.html#toc86"> The abstract mine field</A>
<LI><A HREF="book-ora059.html#toc87"> Displaying the Minesweeper game</A>
<LI><A HREF="book-ora059.html#toc88"> Interaction with the player</A>
<LI><A HREF="book-ora059.html#toc89"> Exercises</A>
</UL>
</UL>

<H1 ALIGN=center>Part&nbsp;II<BR> Development Tools<BR><IMG SRC="logocaml-petit.gif"><IMG SRC="logocaml-petit.gif"> 
</H1><BR>
<BR>
<UL>
<LI><A HREF="book-ora061.html"> Presentation of part II</A>
</UL>

<H1>Chapter&nbsp;7&nbsp;&nbsp; Compilation and Portability</H1>
<A NAME="chap-Compilation"></A>
<A NAME="@concepts117"></A>
<A NAME="@concepts118"></A><UL>
<LI><A HREF="book-ora063.html"> Introduction</A>
<LI><A HREF="book-ora064.html"> Chapter Overview</A>
<LI><A HREF="book-ora065.html"> Steps of Compilation</A>
<UL>
<LI><A HREF="book-ora065.html#toc90"> The Objective CAML Compilers</A>
<LI><A HREF="book-ora065.html#toc91"> Description of the Bytecode Compiler</A>
</UL>
<LI><A HREF="book-ora066.html"> Compilation</A>
<UL>
<LI><A HREF="book-ora066.html#toc92"> Command Names</A>
<LI><A HREF="book-ora066.html#toc93"> Compilation Unit</A>
<LI><A HREF="book-ora066.html#toc94"> Naming Rules for File Extensions</A>
<LI><A HREF="book-ora066.html#toc95"> The Bytecode Compiler</A>
<LI><A HREF="book-ora066.html#toc96"> Native Compiler</A>
<LI><A HREF="book-ora066.html#toc97"> Toplevel Loop</A>
<LI><A HREF="book-ora066.html#toc98"> Construction of a New Interactive System</A>
</UL>
<LI><A HREF="book-ora067.html"> Standalone Executables</A>
<LI><A HREF="book-ora068.html"> Portability and Efficiency</A>
<UL>
<LI><A HREF="book-ora068.html#toc99"> Standalone Files and Portability</A>
<LI><A HREF="book-ora068.html#toc100"> Efficiency of Execution</A>
</UL>
<LI><A HREF="book-ora069.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora069.html#toc101"> Creation of a Toplevel and Standalone Executable</A>
<LI><A HREF="book-ora069.html#toc102"> Comparison of Performance</A>
</UL>
<LI><A HREF="book-ora070.html"> Summary</A>
<LI><A HREF="book-ora071.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;8&nbsp;&nbsp; Libraries</H1>
<A NAME="chap-Bibliotheques"></A>
<A NAME="@concepts146"></A><UL>
<LI><A HREF="book-ora072.html"> Introduction</A>
<LI><A HREF="book-ora073.html"> Chapter Outline</A>
<LI><A HREF="book-ora074.html"> Categorization and Use of the Libraries</A>
<LI><A HREF="book-ora075.html"> Preloaded Library</A>
<LI><A HREF="book-ora076.html"> Standard Library</A>
<UL>
<LI><A HREF="book-ora076.html#toc103"> Utilities</A>
<LI><A HREF="book-ora076.html#toc104"> Linear Data Structures</A>
<LI><A HREF="book-ora076.html#toc105"> Input-output</A>
<LI><A HREF="book-ora076.html#toc106"> Persistence</A>
<LI><A HREF="book-ora076.html#toc107"> Interface with the System</A>
</UL>
<LI><A HREF="book-ora077.html"> Other Libraries in the Distribution</A>
<UL>
<LI><A HREF="book-ora077.html#toc108"> Exact Math</A>
<LI><A HREF="book-ora077.html#toc109"> Dynamic Loading of Code</A>
</UL>
<LI><A HREF="book-ora078.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora078.html#toc110"> Resolution of Linear Systems</A>
<LI><A HREF="book-ora078.html#toc111"> Search for Prime Numbers</A>
<LI><A HREF="book-ora078.html#toc112"> Displaying Bitmaps</A>
</UL>
<LI><A HREF="book-ora079.html"> Summary</A>
<LI><A HREF="book-ora080.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;9&nbsp;&nbsp; Garbage Collection</H1>
<A NAME="chap-GC"></A>
<A NAME="@concepts169"></A>
<A NAME="@concepts170"></A>
<A NAME="@concepts171"></A>
<A NAME="@concepts172"></A>
<A NAME="@concepts173"></A><UL>
<LI><A HREF="book-ora082.html"> Introduction</A>
<LI><A HREF="book-ora083.html"> Chapter Overview</A>
<LI><A HREF="book-ora084.html"> Program Memory</A>
<LI><A HREF="book-ora085.html"> Allocation and Deallocation of Memory</A>
<UL>
<LI><A HREF="book-ora085.html#toc113"> Explicit Allocation</A>
<LI><A HREF="book-ora085.html#toc114"> Explicit Reclamation</A>
<LI><A HREF="book-ora085.html#toc115"> Implicit Reclamation</A>
</UL>
<LI><A HREF="book-ora086.html"> Automatic Garbage Collection</A>
<UL>
<LI><A HREF="book-ora086.html#toc116"> Reference Counting</A>
<LI><A HREF="book-ora086.html#toc117"> Sweep Algorithms</A>
<LI><A HREF="book-ora086.html#toc118"> <I>Mark</I>&amp;<I>Sweep</I></A>
<LI><A HREF="book-ora086.html#toc119"> <I>Stop</I>&amp;<I>Copy</I></A>
<LI><A HREF="book-ora086.html#toc120"> Other Garbage Collectors</A>
</UL>
<LI><A HREF="book-ora087.html"> Memory Management by Objective CAML</A>
<LI><A HREF="book-ora088.html"> Module <TT>Gc</TT></A>
<LI><A HREF="book-ora089.html"> Module <TT>Weak</TT></A>
<LI><A HREF="book-ora090.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora090.html#toc121"> Following the evolution of the heap</A>
<LI><A HREF="book-ora090.html#toc122"> Memory Allocation and Programming Styles</A>
</UL>
<LI><A HREF="book-ora091.html"> Summary</A>
<LI><A HREF="book-ora092.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;10&nbsp;&nbsp; Program Analysis Tools</H1>
<A NAME="chap-Aprog"></A><UL>
<LI><A HREF="book-ora094.html"> Introduction</A>
<LI><A HREF="book-ora095.html"> Chapter Overview</A>
<LI><A HREF="book-ora096.html"> Dependency Analysis</A>
<LI><A HREF="book-ora097.html"> Debugging Tools</A>
<UL>
<LI><A HREF="book-ora097.html#toc123"> Trace</A>
<LI><A HREF="book-ora097.html#toc124"> Debug</A>
<LI><A HREF="book-ora097.html#toc125"> Execution Control</A>
</UL>
<LI><A HREF="book-ora098.html"> Profiling</A>
<UL>
<LI><A HREF="book-ora098.html#toc126"> Compilation Commands</A>
<LI><A HREF="book-ora098.html#toc127"> Program Execution</A>
<LI><A HREF="book-ora098.html#toc128"> Presentation of the Results</A>
</UL>
<LI><A HREF="book-ora099.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora099.html#toc129"> Tracing Function Application</A>
<LI><A HREF="book-ora099.html#toc130"> Performance Analysis</A>
</UL>
<LI><A HREF="book-ora100.html"> Summary</A>
<LI><A HREF="book-ora101.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;11&nbsp;&nbsp; Tools for lexical analysis and parsing</H1>
<A NAME="chap-AlexS"></A><UL>
<LI><A HREF="book-ora103.html"> Introduction</A>
<LI><A HREF="book-ora104.html"> Chapter Structure</A>
<LI><A HREF="book-ora105.html"> Lexicon</A>
<UL>
<LI><A HREF="book-ora105.html#toc131"> Module <TT>Genlex</TT></A>
<LI><A HREF="book-ora105.html#toc132"> Use of Streams</A>
<LI><A HREF="book-ora105.html#toc133"> Regular Expressions</A>
<LI><A HREF="book-ora105.html#toc134"> The <TT>Str</TT> Library</A>
<LI><A HREF="book-ora105.html#toc135"> The <TT>ocamllex</TT> Tool</A>
</UL>
<LI><A HREF="book-ora106.html"> Syntax</A>
<UL>
<LI><A HREF="book-ora106.html#toc136"> Grammar</A>
<LI><A HREF="book-ora106.html#toc137"> Production and Recognition</A>
<LI><A HREF="book-ora106.html#toc138"> Top-down Parsing</A>
<LI><A HREF="book-ora106.html#toc139"> Bottom-up Parsing</A>
<LI><A HREF="book-ora106.html#toc140"> The <TT>ocamlyacc</TT> Tool</A>
<LI><A HREF="book-ora106.html#toc141"> Contextual Grammars</A>
</UL>
<LI><A HREF="book-ora107.html"> Basic Revisited</A>
<UL>
<LI><A HREF="book-ora107.html#toc142"> File <TT>basic_parser.mly</TT></A>
<LI><A HREF="book-ora107.html#toc143"> File <TT>basic_lexer.mll</TT></A>
<LI><A HREF="book-ora107.html#toc144"> Compiling, Linking</A>
</UL>
<LI><A HREF="book-ora108.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora108.html#toc145"> Filtering Comments Out</A>
<LI><A HREF="book-ora108.html#toc146"> Evaluator</A>
</UL>
<LI><A HREF="book-ora109.html"> Summary</A>
<LI><A HREF="book-ora110.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;12&nbsp;&nbsp; Interoperability with C</H1>
<A NAME="chap-interop"></A>
<A NAME="chap-IC"></A><UL>
<LI><A HREF="book-ora112.html"> Introduction</A>
<LI><A HREF="book-ora113.html"> Chapter outline</A>
<LI><A HREF="book-ora114.html"> Communication between C and Objective CAML</A>
<UL>
<LI><A HREF="book-ora114.html#toc147"> External declarations</A>
<LI><A HREF="book-ora114.html#toc148"> Declaration of the C functions</A>
<LI><A HREF="book-ora114.html#toc149"> Linking with C</A>
<LI><A HREF="book-ora114.html#toc150"> Mixing input-output in C and in Objective CAML</A>
</UL>
<LI><A HREF="book-ora115.html"> Exploring Objective CAML values from C</A>
<UL>
<LI><A HREF="book-ora115.html#toc151"> Classification of Objective CAML representations</A>
<LI><A HREF="book-ora115.html#toc152"> Accessing immediate values</A>
<LI><A HREF="book-ora115.html#toc153"> Representation of structured values</A>
</UL>
<LI><A HREF="book-ora116.html"> Creating and modifying Objective CAML values from&nbsp;C</A>
<UL>
<LI><A HREF="book-ora116.html#toc154"> Modifying Objective CAML values</A>
<LI><A HREF="book-ora116.html#toc155"> Allocating new blocks</A>
<LI><A HREF="book-ora116.html#toc156"> Storing C data in the Objective CAML heap</A>
<LI><A HREF="book-ora116.html#toc157"> Garbage collection and C parameters and local variables</A>
<LI><A HREF="book-ora116.html#toc158"> Calling an Objective CAML closure from C</A>
</UL>
<LI><A HREF="book-ora117.html"> Exception handling in C and in Objective CAML</A>
<UL>
<LI><A HREF="book-ora117.html#toc159"> Raising a predefined exception</A>
<LI><A HREF="book-ora117.html#toc160"> Raising a user-defined exception</A>
<LI><A HREF="book-ora117.html#toc161"> Catching an exception</A>
</UL>
<LI><A HREF="book-ora118.html"> Main program in C</A>
<UL>
<LI><A HREF="book-ora118.html#toc162"> Linking Objective CAML code with C</A>
</UL>
<LI><A HREF="book-ora119.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora119.html#toc163"> Polymorphic Printing Function</A>
<LI><A HREF="book-ora119.html#toc164"> Matrix Product</A>
<LI><A HREF="book-ora119.html#toc165"> Counting Words: Main Program in C</A>
</UL>
<LI><A HREF="book-ora120.html"> Summary</A>
<LI><A HREF="book-ora121.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;13&nbsp;&nbsp; Applications</H1>
<A NAME="chap-PART2-Applications"></A><UL>
<LI><A HREF="book-ora123.html"> Introduction</A>
<LI><A HREF="book-ora124.html"> Constructing a Graphical Interface</A>
<UL>
<LI><A HREF="book-ora124.html#toc166"> Graphics Context, Events and Options</A>
<LI><A HREF="book-ora124.html#toc167"> Components and Containers</A>
<LI><A HREF="book-ora124.html#toc168"> Event Handling</A>
<LI><A HREF="book-ora124.html#toc169"> Defining Components</A>
<LI><A HREF="book-ora124.html#toc170"> Enriched Components</A>
<LI><A HREF="book-ora124.html#toc171"> Setting up the <TT>Awi</TT> Library</A>
<LI><A HREF="book-ora124.html#toc172"> Example: A Franc-Euro Converter</A>
<LI><A HREF="book-ora124.html#toc173"> Where to go from here</A>
</UL>
<LI><A HREF="book-ora125.html"> Finding Least Cost Paths</A>
<UL>
<LI><A HREF="book-ora125.html#toc174"> Graph Representions</A>
<LI><A HREF="book-ora125.html#toc175"> Dijkstra's Algorithm</A>
<LI><A HREF="book-ora125.html#toc176"> Introducing a Cache</A>
<LI><A HREF="book-ora125.html#toc177"> A Graphical Interface</A>
<LI><A HREF="book-ora125.html#toc178"> Creating a Standalone Application</A>
<LI><A HREF="book-ora125.html#toc179"> Final Notes</A>
</UL>
</UL>

<H1 ALIGN=center>Part&nbsp;III<BR> Application Structure<BR><IMG SRC="logocaml-petit.gif"><IMG SRC="logocaml-petit.gif"><IMG SRC="logocaml-petit.gif"> 
</H1><BR>
<BR>
<UL>
<LI><A HREF="book-ora127.html"> Presentation of Part III</A>
</UL>

<H1>Chapter&nbsp;14&nbsp;&nbsp; Programming with Modules</H1> <A NAME="chap-modules"></A>
<A NAME="chap-PM"></A><UL>
<LI><A HREF="book-ora128.html"> Introduction</A>
<LI><A HREF="book-ora129.html"> Chapter Outline</A>
<LI><A HREF="book-ora130.html"> Modules as Compilation Units</A>
<UL>
<LI><A HREF="book-ora130.html#toc180"> Interface and Implementation</A>
<LI><A HREF="book-ora130.html#toc181"> Relating Interfaces and Implementations</A>
<LI><A HREF="book-ora130.html#toc182"> Separate Compilation</A>
</UL>
<LI><A HREF="book-ora131.html"> The Module Language</A>
<UL>
<LI><A HREF="book-ora131.html#toc183"> Two Stack Modules</A>
<LI><A HREF="book-ora131.html#toc184"> Modules and Information Hiding</A>
<LI><A HREF="book-ora131.html#toc185"> Type Sharing between Modules</A>
<LI><A HREF="book-ora131.html#toc186"> Extending Simple Modules</A>
</UL>
<LI><A HREF="book-ora132.html"> Parameterized Modules</A>
<UL>
<LI><A HREF="book-ora132.html#toc187"> Functors and Code Reuse</A>
<LI><A HREF="book-ora132.html#toc188"> Local Module Definitions</A>
</UL>
<LI><A HREF="book-ora133.html"> Extended Example: Managing Bank Accounts</A>
<UL>
<LI><A HREF="book-ora133.html#toc189"> Organization of the Program</A>
<LI><A HREF="book-ora133.html#toc190"> Signatures for the Module Parameters</A>
<LI><A HREF="book-ora133.html#toc191"> The Parameterized Module for Managing Accounts</A>
<LI><A HREF="book-ora133.html#toc192"> Implementing the Parameters</A>
</UL>
<LI><A HREF="book-ora134.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora134.html#toc193"> Association Lists</A>
<LI><A HREF="book-ora134.html#toc194"> Parameterized Vectors</A>
<LI><A HREF="book-ora134.html#toc195"> Lexical Trees</A>
</UL>
<LI><A HREF="book-ora135.html"> Summary</A>
<LI><A HREF="book-ora136.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;15&nbsp;&nbsp; Object-Oriented Programming</H1>
<A NAME="chap-POO"></A>
<UL>
<LI><A HREF="book-ora138.html"> Introduction</A>
<LI><A HREF="book-ora139.html"> Chapter Plan</A>
<LI><A HREF="book-ora140.html"> Classes, Objects, and Methods</A>
<UL>
<LI><A HREF="book-ora140.html#toc196"> Object-Oriented Terminology</A>
<LI><A HREF="book-ora140.html#toc197"> Class Declaration</A>
<LI><A HREF="book-ora140.html#toc198"> Instance Creation</A>
<LI><A HREF="book-ora140.html#toc199"> Sending a Message</A>
</UL>
<LI><A HREF="book-ora141.html"> Relations between Classes</A>
<UL>
<LI><A HREF="book-ora141.html#toc200"> Aggregation</A>
<LI><A HREF="book-ora141.html#toc201"> Inheritance Relation</A>
</UL>
<LI><A HREF="book-ora142.html"> Other Object-oriented Features</A>
<UL>
<LI><A HREF="book-ora142.html#toc202"> References: <TT>self</TT> and <TT>super</TT></A>
<LI><A HREF="book-ora142.html#toc203"> Delayed Binding</A>
<LI><A HREF="book-ora142.html#toc204"> Object Representation and Message Dispatch</A>
<LI><A HREF="book-ora142.html#toc205"> Initialization</A>
<LI><A HREF="book-ora142.html#toc206"> Private Methods</A>
</UL>
<LI><A HREF="book-ora143.html"> Types and Genericity</A>
<UL>
<LI><A HREF="book-ora143.html#toc207"> Abstract Classes and Methods</A>
<LI><A HREF="book-ora143.html#toc208"> Classes, Types, and Objects</A>
<LI><A HREF="book-ora143.html#toc209"> Multiple Inheritance</A>
<LI><A HREF="book-ora143.html#toc210"> Parameterized Classes</A>
</UL>
<LI><A HREF="book-ora144.html"> Subtyping and Inclusion Polymorphism</A>
<UL>
<LI><A HREF="book-ora144.html#toc211"> Example</A>
<LI><A HREF="book-ora144.html#toc212"> Subtyping is not Inheritance</A>
<LI><A HREF="book-ora144.html#toc213"> Inclusion Polymorphism</A>
<LI><A HREF="book-ora144.html#toc214"> Equality between Objects</A>
</UL>
<LI><A HREF="book-ora145.html"> Functional Style</A>
<LI><A HREF="book-ora146.html"> Other Aspects of the Object Extension</A>
<UL>
<LI><A HREF="book-ora146.html#toc215"> Interfaces</A>
<LI><A HREF="book-ora146.html#toc216"> Local Declarations in Classes</A>
</UL>
<LI><A HREF="book-ora147.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora147.html#toc217"> Stacks as Objects</A>
<LI><A HREF="book-ora147.html#toc218"> Delayed Binding</A>
<LI><A HREF="book-ora147.html#toc219"> Abstract Classes and an Expression Evaluator</A>
<LI><A HREF="book-ora147.html#toc220"> The Game of Life and Objects.</A>
</UL>
<LI><A HREF="book-ora148.html"> Summary</A>
<LI><A HREF="book-ora149.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;16&nbsp;&nbsp; Comparison of the Models of Organisation</H1>
<A NAME="chap-C-Organisation"></A><UL>
<LI><A HREF="book-ora151.html"> Introduction</A>
<LI><A HREF="book-ora152.html"> Plan of the Chapter</A>
<LI><A HREF="book-ora153.html"> Comparison of Modules and Objects</A>
<UL>
<LI><A HREF="book-ora153.html#toc221"> Translation of Modules into Classes</A>
<LI><A HREF="book-ora153.html#toc222"> Simulation of Inheritance with Modules</A>
<LI><A HREF="book-ora153.html#toc223"> Limitations of each Model</A>
</UL>
<LI><A HREF="book-ora154.html"> Extending Components</A>
<UL>
<LI><A HREF="book-ora154.html#toc224"> In the Functional Model</A>
<LI><A HREF="book-ora154.html#toc225"> In the Object Model</A>
<LI><A HREF="book-ora154.html#toc226"> Extension of Data and Methods</A>
</UL>
<LI><A HREF="book-ora155.html"> Mixed Organisations</A>
<LI><A HREF="book-ora156.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora156.html#toc227"> Classes and Modules for Data Structures</A>
<LI><A HREF="book-ora156.html#toc228"> Abstract Types</A>
</UL>
<LI><A HREF="book-ora157.html"> Summary</A>
<LI><A HREF="book-ora158.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;17&nbsp;&nbsp; Applications</H1>
<A NAME="chap-PART3-Applications"></A><UL>
<LI><A HREF="book-ora159.html"> Introduction</A>
<LI><A HREF="book-ora160.html"> Two Player Games</A>
<UL>
<LI><A HREF="book-ora160.html#toc229"> The Problem of Two Player Games</A>
<LI><A HREF="book-ora160.html#toc230"> Minimax <FONT FACE=symbol>a</FONT><FONT FACE=symbol>b</FONT></A>
<LI><A HREF="book-ora160.html#toc231"> Organization of a Game Program</A>
<LI><A HREF="book-ora160.html#toc232"> Connect Four</A>
<LI><A HREF="book-ora160.html#toc233"> Stonehenge</A>
<LI><A HREF="book-ora160.html#toc234"> To Learn More</A>
</UL>
<LI><A HREF="book-ora161.html"> Fancy Robots</A>
<UL>
<LI><A HREF="book-ora161.html#toc235"> ``Abstract'' Robots</A>
<LI><A HREF="book-ora161.html#toc236"> Pure World</A>
<LI><A HREF="book-ora161.html#toc237"> Textual Robots</A>
<LI><A HREF="book-ora161.html#toc238"> Textual World</A>
<LI><A HREF="book-ora161.html#toc239"> Graphical Robots</A>
<LI><A HREF="book-ora161.html#toc240"> Graphical World</A>
<LI><A HREF="book-ora161.html#toc241"> To Learn More</A>
</UL>
</UL>

<H1 ALIGN=center>Part&nbsp;IV<BR> Concurrency and distribution<BR><IMG SRC="logocaml-petit.gif"><IMG SRC="logocaml-petit.gif"><IMG SRC="logocaml-petit.gif"><IMG SRC="logocaml-petit.gif"> 
</H1>
<BR>
<BR>
<UL>
<LI><A HREF="book-ora162.html"> Presentation of Part IV</A>
</UL>

<H1>Chapter&nbsp;18&nbsp;&nbsp; Communication and Processes</H1>
<A NAME="chap-PS"></A>
<UL>
<LI><A HREF="book-ora163.html"> Introduction</A>
<LI><A HREF="book-ora164.html"> Chapter Overview</A>
<LI><A HREF="book-ora165.html"> The <TT>Unix</TT> Module</A>
<UL>
<LI><A HREF="book-ora165.html#toc242"> Error Handling</A>
<LI><A HREF="book-ora165.html#toc243"> Portability of System Calls</A>
</UL>
<LI><A HREF="book-ora166.html"> File Descriptors</A>
<UL>
<LI><A HREF="book-ora166.html#toc244"> File Manipulation</A>
<LI><A HREF="book-ora166.html#toc245"> Input / Output on Files</A>
</UL>
<LI><A HREF="book-ora167.html"> Processes</A>
<UL>
<LI><A HREF="book-ora167.html#toc246"> Executing a Program</A>
<LI><A HREF="book-ora167.html#toc247"> Process Creation</A>
<LI><A HREF="book-ora167.html#toc248"> Creation of Processes by Duplication</A>
<LI><A HREF="book-ora167.html#toc249"> Order and Moment of Execution</A>
<LI><A HREF="book-ora167.html#toc250"> Descendence, Death and Funerals of Processes</A>
</UL>
<LI><A HREF="book-ora168.html"> Communication Between Processes</A>
<UL>
<LI><A HREF="book-ora168.html#toc251"> Communication Pipes</A>
<LI><A HREF="book-ora168.html#toc252"> Communication Channels</A>
<LI><A HREF="book-ora168.html#toc253"> Signals under Unix</A>
</UL>
<LI><A HREF="book-ora169.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora169.html#toc254"> Counting Words: the <TT>wc</TT> Command</A>
<LI><A HREF="book-ora169.html#toc255"> Pipes for Spell Checking</A>
<LI><A HREF="book-ora169.html#toc256"> Interactive Trace</A>
</UL>
<LI><A HREF="book-ora170.html"> Summary</A>
<LI><A HREF="book-ora171.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;19&nbsp;&nbsp; Concurrent Programming</H1> <A NAME="chap-PC"></A>
<UL>
<LI><A HREF="book-ora173.html"> Introduction</A>
<LI><A HREF="book-ora174.html"> Plan of the Chapter</A>
<LI><A HREF="book-ora175.html"> Concurrent Processes</A>
<UL>
<LI><A HREF="book-ora175.html#toc257"> Compilation with Threads</A>
<LI><A HREF="book-ora175.html#toc258"> Module <TT>Thread</TT></A>
</UL>
<LI><A HREF="book-ora176.html"> Synchronization of Processes</A>
<UL>
<LI><A HREF="book-ora176.html#toc259"> Critical Section and Mutual Exclusion</A>
<LI><A HREF="book-ora176.html#toc260"> <TT>Mutex</TT> Module</A>
<LI><A HREF="book-ora176.html#toc261"> Waiting and Synchronization</A>
<LI><A HREF="book-ora176.html#toc262"> <TT>Condition</TT> Module</A>
</UL>
<LI><A HREF="book-ora177.html"> Synchronous Communication</A>
<UL>
<LI><A HREF="book-ora177.html#toc263"> Synchronization using Communication Events</A>
<LI><A HREF="book-ora177.html#toc264"> Transmitted Values</A>
<LI><A HREF="book-ora177.html#toc265"> Module <TT>Event</TT></A>
</UL>
<LI><A HREF="book-ora178.html"> Example: Post Office</A>
<UL>
<LI><A HREF="book-ora178.html#toc266"> The Components</A>
<LI><A HREF="book-ora178.html#toc267"> Clients and Clerks</A>
<LI><A HREF="book-ora178.html#toc268"> The System</A>
</UL>
<LI><A HREF="book-ora179.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora179.html#toc269"> The Philosophers Disentangled</A>
<LI><A HREF="book-ora179.html#toc270"> More of the Post Office</A>
<LI><A HREF="book-ora179.html#toc271"> Object Producers and Consumers</A>
</UL>
<LI><A HREF="book-ora180.html"> Summary</A>
<LI><A HREF="book-ora181.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;20&nbsp;&nbsp; Distributed Programming</H1>
<A NAME="chap-PD"></A><UL>
<LI><A HREF="book-ora183.html"> Introduction</A>
<LI><A HREF="book-ora184.html"> Outline of the Chapter</A>
<LI><A HREF="book-ora185.html"> The Internet</A>
<UL>
<LI><A HREF="book-ora185.html#toc272"> The <TT>Unix</TT> Module and IP Addressing</A>
</UL>
<LI><A HREF="book-ora186.html"> Sockets</A>
<UL>
<LI><A HREF="book-ora186.html#toc273"> Description and Creation</A>
<LI><A HREF="book-ora186.html#toc274"> Addresses and Connections</A>
</UL>
<LI><A HREF="book-ora187.html"> Client-server</A>
<UL>
<LI><A HREF="book-ora187.html#toc275"> Client-server Action Model</A>
<LI><A HREF="book-ora187.html#toc276"> Client-server Programming</A>
<LI><A HREF="book-ora187.html#toc277"> Code for the Server</A>
<LI><A HREF="book-ora187.html#toc278"> Testing with <TT>telnet</TT></A>
<LI><A HREF="book-ora187.html#toc279"> The Client Code</A>
<LI><A HREF="book-ora187.html#toc280"> Client-server Programming with Lightweight Processes</A>
<LI><A HREF="book-ora187.html#toc281"> Multi-tier Client-server Programming</A>
<LI><A HREF="book-ora187.html#toc282"> Some Remarks on the Client-server Programs</A>
</UL>
<LI><A HREF="book-ora188.html"> Communication Protocols</A>
<UL>
<LI><A HREF="book-ora188.html#toc283"> Text Protocol</A>
<LI><A HREF="book-ora188.html#toc284"> Protocols with Acknowledgement and Time Limits</A>
<LI><A HREF="book-ora188.html#toc285"> Transmitting Values in their Internal Representation</A>
<LI><A HREF="book-ora188.html#toc286"> Interoperating with Different Languages</A>
</UL>
<LI><A HREF="book-ora189.html"> Exercises</A>
<UL>
<LI><A HREF="book-ora189.html#toc287"> Service: Clock</A>
<LI><A HREF="book-ora189.html#toc288"> A Network Coffee Machine</A>
</UL>
<LI><A HREF="book-ora190.html"> Summary</A>
<LI><A HREF="book-ora191.html"> To Learn More</A>
</UL>

<H1>Chapter&nbsp;21&nbsp;&nbsp; Applications</H1>
<A NAME="chap-PART4-Applications"></A><UL>
<LI><A HREF="book-ora193.html"> Introduction</A>
<LI><A HREF="book-ora194.html"> Client-server Toolbox</A>
<UL>
<LI><A HREF="book-ora194.html#toc289"> Protocols</A>
<LI><A HREF="book-ora194.html#toc290"> Communication</A>
<LI><A HREF="book-ora194.html#toc291"> Server</A>
<LI><A HREF="book-ora194.html#toc292"> Client</A>
<LI><A HREF="book-ora194.html#toc293"> To Learn More</A>
</UL>
<LI><A HREF="book-ora195.html"> The Robots of Dawn</A>
<UL>
<LI><A HREF="book-ora195.html#toc294"> World-Server</A>
<LI><A HREF="book-ora195.html#toc295"> Observer-client</A>
<LI><A HREF="book-ora195.html#toc296"> Robot-Client</A>
<LI><A HREF="book-ora195.html#toc297"> To Learn More</A>
</UL>
<LI><A HREF="book-ora196.html"> HTTP Servlets</A>
<UL>
<LI><A HREF="book-ora196.html#toc298"> HTTP and CGI Formats</A>
<LI><A HREF="book-ora196.html#toc299"> HTML Servlet Interface</A>
<LI><A HREF="book-ora196.html#toc300"> Dynamic Pages for Managing the Association Database</A>
<LI><A HREF="book-ora196.html#toc301"> Analysis of Requests and Response</A>
<LI><A HREF="book-ora196.html#toc302"> Main Entry Point and Application</A>
<LI><A HREF="book-ora196.html#toc303"> To Learn More</A>
</UL>
</UL>

<H1>Chapter&nbsp;22&nbsp;&nbsp; Developing applications with Objective CAML</H1>
<A NAME="chap-Devel"></A><UL>
<LI><A HREF="book-ora198.html"> Introduction</A>
<LI><A HREF="book-ora199.html"> Elements of the evaluation</A>
<UL>
<LI><A HREF="book-ora199.html#toc304"> Language</A>
<LI><A HREF="book-ora199.html#toc305"> Libraries and tools</A>
<LI><A HREF="book-ora199.html#toc306"> Documentation</A>
</UL>
<LI><A HREF="book-ora200.html"> Other development tools</A>
<UL>
<LI><A HREF="book-ora200.html#toc307"> Editing tools</A>
<LI><A HREF="book-ora200.html#toc308"> Syntax extension</A>
<LI><A HREF="book-ora200.html#toc309"> Interoperability with other languages</A>
<LI><A HREF="book-ora200.html#toc310"> Graphical interfaces</A>
<LI><A HREF="book-ora200.html#toc311"> Parallel programming and distribution</A>
</UL>
<LI><A HREF="book-ora201.html"> Applications developed in Objective CAML</A>
<LI><A HREF="book-ora202.html"> Similar functional languages</A>
<UL>
<LI><A HREF="book-ora202.html#toc312"> ML family</A>
<LI><A HREF="book-ora202.html#toc313"> Scheme</A>
<LI><A HREF="book-ora202.html#toc314"> Languages with delayed evaluation</A>
<LI><A HREF="book-ora202.html#toc315"> Communication languages</A>
</UL>
<LI><A HREF="book-ora203.html"> Object-oriented languages: comparison with Java</A>
<UL>
<LI><A HREF="book-ora203.html#toc316"> Main characteristics</A>
<LI><A HREF="book-ora203.html#toc317"> Differences with Objective CAML</A>
</UL>
<LI><A HREF="book-ora204.html"> Future of Objective CAML development</A>
</UL>

<H1>Conclusion</H1>
<UL>
<LI><A HREF="book-ora206.html"> Texte</A>
</UL>

<H1 ALIGN=center>Part&nbsp;V<BR> Appendices<BR><IMG SRC="logocaml-petit.gif"><IMG SRC="logocaml-petit.gif"><IMG SRC="logocaml-petit.gif"><IMG SRC="logocaml-petit.gif"><IMG SRC="logocaml-petit.gif"> 
</H1>
<BR>
<BR>

<H1>Appendix&nbsp;A&nbsp;&nbsp; Cyclic Types</H1><UL>
<LI><A HREF="book-ora207.html"> Introduction</A>
<LI><A HREF="book-ora208.html"> Cyclic types</A>
<LI><A HREF="book-ora209.html"> Option <TT>-rectypes</TT></A>
</UL>

<H1>Appendix&nbsp;B&nbsp;&nbsp; Objective CAML 3.04</H1>
<A NAME="chap-NewOcaml"></A><UL>
<LI><A HREF="book-ora210.html"> Introduction</A>
<LI><A HREF="book-ora211.html"> Language Extensions</A>
<UL>
<LI><A HREF="book-ora211.html#toc318"> Labels</A>
<LI><A HREF="book-ora211.html#toc319"> Optional arguments</A>
<LI><A HREF="book-ora211.html#toc320"> Labels and objects</A>
<LI><A HREF="book-ora211.html#toc321"> Polymorphic variants</A>
</UL>
<LI><A HREF="book-ora212.html"> <TT>LablTk</TT> Library</A>
<LI><A HREF="book-ora213.html"> OCamlBrowser</A>
</UL>

<H1>References</H1> 
 <UL>
<LI><A HREF="book-ora214.html"> Bibliography</A>
</UL>

<H1>Index</H1>

<UL>
<LI><A HREF="book-ora215.html"> Index of concepts</A>
</UL>

<UL>
<LI><A HREF="book-ora216.html"> Index of language elements</A>
</UL>
<BR>
<BR>

<BR>
<BR>


<BR>
<BR>



<BR>
<BR>



<H1>O'Reilly News</H1>
<UL>
<LI><A HREF="book-ora217.html"> Contacts</A>
</UL>
<!--FOOTER-->

<BR>
<BR>


<HR SIZE=2>
<BLOCKQUOTE><EM>This document was translated from L<sup>A</sup>T<sub>E</sub>X by
</EM><A HREF="http://pauillac.inria.fr/~maranget/hevea/index.html"><EM>H</EM><EM><FONT SIZE=2><sup>E</sup></FONT></EM><EM>V</EM><EM><FONT SIZE=2><sup>E</sup></FONT></EM><EM>A and H</EM><EM><FONT SIZE=2><sup>A</sup></FONT></EM><EM>C</EM><EM><FONT SIZE=2><sup>H</sup></FONT></EM><EM>A</EM></A><EM>.
</EM></BLOCKQUOTE></BODY>
</HTML>

